package reading_text

import (
	"bufio"
	"fmt"
	"log"
	"os"
)

func ReadFile() {
	file, err := os.Open("./reading_text/data.txt") //打开数据文件进行读取
	if err != nil {
		log.Fatal(err)
	}

	/*
		Scanner.scan()函数相当于迭代器Iterator，默认以换行符'\n'为分隔符
		调用该方法就是将迭代器中指向的数据放到新的缓冲区中
		新缓冲区（token）可以通过scanner.Text()获取到
	*/

	scanner := bufio.NewScanner(file) //为文件创建一个新的扫描器
	for scanner.Scan() {              //从文件中读取一行
		fmt.Println(scanner.Text()) //打印该行
	}

	err = file.Close() //关闭文件以释放资源
	if err != nil {
		log.Fatal(err)
	}

	//如果扫描文件时出现错误，报告错误并退出
	if scanner.Err() != nil {
		log.Fatal(scanner.Err())
	}
}
